<?php

require_once 'Mobitv/Admin/Action.php';

//require_once('Recaptcha/recaptchalib.php');

class LoginAction extends Mobitv_Admin_Action {

    public function execute() {
        if (isset($_SESSION['userid']) && $_SESSION['userid'])
            $this->redirect('/admin/detail');
        $this->setOption('layout', 'login');
        $resp = null;
        $report = null;
        $ref = isset($_REQUEST['ref']) ? $_REQUEST['ref'] : '';
        if ($_POST) {
            if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {
                $report = "Chuỗi ký tự nhập vào không đúng!";
            } elseif ($_POST) {
                $userDao = Vega_Dao::factory('Mobitv_Admin_Admin');
                $username = $_POST['username'];
                $password = $_POST['password'];

                $verifyUserUrl = $userDao->getGroupAdminUser($username, $password);
                $httpPost = $_SERVER['HTTP_HOST'];
                $arrUrl = explode(":", $httpPost);

                $ipPublic = $this->_config['ip_public'];
                $ipPrivate = $this->_config['ip_private'];

                if ($verifyUserUrl && $arrUrl[0] == $ipPublic || !$verifyUserUrl && in_array($arrUrl[0], $ipPrivate)) {
                    $report = "Bạn không có quyền truy cập vào trang này!";
                } else {

                    $userIsAuthenticated = $userDao->isAuthenticated($username, $password);

                    if (!$username || !$password) {
                        $report = "Bạn phải nhập tên truy cập và mật khẩu!";
                    } else if (!$userIsAuthenticated) {
                        $report = "Thông tin đăng nhập không chính xác!";
                    } else {
                        list($userID, $groupId, $userAccess, $abbr, $inactive) = $userIsAuthenticated;
                        if ($inactive == 1) {
                            $report = "Tài khoản này đã bị xóa!";
                        } else {
                            session_regenerate_id();
                            // Save user session
                            $_SESSION['username'] = $username;
                            $_SESSION['userid'] = $userID;
                            $_SESSION['token'] = md5('mobitv' . date('YmdHis'));

                            // Co duoc thay het cac video hay chi thay video cua minh
                            $_SESSION['viewall'] = $userAccess;
                            $_SESSION['groupid'] = $groupId;
                            $_SESSION['abbr'] = $abbr;
                            $this->updateLogAdmin($userID, 'login', $userID, 'login');
                            // Save user cookie
                            if (isset($_POST['persistent'])) {
                                // TODO: get expire time in config
                                // Expire in 30 days
                                $expire = time() + 2592000;
                                $userHash = md5($userID . $username . 'Mobitv');

                                setcookie("userid", $userID, $expire, '/');
                                setcookie("username", $username, $expire, '/');
                                setcookie("userhash", $userHash, $expire, '/');
                            }
                            if ($ref) {
                                // Back to previous page
                                $this->redirect(base64_decode($ref));
                            } else {
                                unset($_SESSION['captcha']);
                                $this->redirect('/admin/detail');                                
                            }
                        }
                    }
                }
            }
        }
        $this->_view->assign('report', $report);
    }

}
